#region Header
//=============================================================================
//                          GShield (Game Shield)
//=============================================================================
//
// Original Programmer: Shawn Jackson
// Company: WaveTech Digital Technologies (www.wtdt.com)
// Copyright: (c) 2006 WaveTech Digital Technologies, All Rights Reserved.
// Assembly: Engine
// Code File Name: SMTPClient.cs
// Code File Date: 12/7/2006
//
// Code File Info: SMTP (Mail) Client
//=============================================================================
/*
 * UPDATES
 * -------
 *                   ShawnJ 5/5/2007 (0.9.0.x): Refactoring for OSS.
 */
#endregion Header

#region License
/*
  GShield - Game Shield
  Copyright (C) 2006-2007 WaveTech Digital Technologies, Inc.
                                http://www.wtdt.com

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
#endregion License

#region Includes
using System;
using System.Net.Mail;
using WaveTech.GShield.Data;
using WaveTech.GShield.Model;

#endregion Includes

namespace WaveTech.GShield.Engine.Tools
{
  /// <summary>
  /// SMTP Mail Client Methods
  /// </summary>
  public class SMTPClient
  {
    #region Send
    /// <summary>
    /// Sends a Email Message using the Settings object
    /// </summary>
    /// <param name="message">Message to Send</param>
    /// <param name="settings">System Settings</param>
    public static void Send(Message message, Setting settings)
    {
      if (message == null)
        throw new ArgumentNullException("message");
      else if (settings == null)
        throw new ArgumentNullException("settings");
      
      MailMessage mailMsg = new MailMessage(message.From, message.To);
      mailMsg.Subject = message.Subject;
      mailMsg.Body = message.Body;
      mailMsg.Attachments.Add(new Attachment(message.AttachmentPath));

      SmtpClient client = new SmtpClient(settings.SmtpServer);
      client.Send(mailMsg);
    }
    #endregion Send
  }
}